{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import math\n",
    "from sklearn.metrics import mean_squared_error as mse, mean_absolute_error as mae\n",
    "from statsmodels.tsa.arima_model import ARIMA\n",
    "from statsmodels.tsa.stattools import adfuller as ADF\n",
    "from statsmodels.graphics.tsaplots import plot_acf, plot_pacf\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "scrolled": false
   },
   "outputs": [],
   "source": [
    "bus_df = pd.read_csv(\"./bus_train.csv\", index_col = 0, parse_dates=[0])\n",
    "print(bus_df)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "# pfr_station_seq 站序号\n",
    "# pfr_get_on_number 上车人数\n",
    "# pfr_get_off_number 下车人数\n",
    "# prf_get_person_count 车内人数\n",
    "# pfr_upload_time 采集时间"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(bus_df['pfr_get_off_number'])\n",
    "plt.title('prf_get_person_count')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "pfr_upload_time\n",
      "2021-03-01 07:24:00     8\n",
      "2021-03-01 07:25:00    15\n",
      "Name: prf_get_person_count, dtype: int64\n"
     ]
    }
   ],
   "source": [
    "print(bus_df.prf_get_person_count['2021/3/1 7:20:28': '2021/3/1 7:25:52'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "原始序列经检验平稳,p值为:4.041451054582282e-06\n"
     ]
    }
   ],
   "source": [
    "# 平稳性检验\n",
    "diff=0\n",
    "adf=ADF(bus_df['prf_get_person_count'])\n",
    "# print(adf)\n",
    "if adf[1]>0.05:\n",
    "    print(u'原始序列经检验不平稳,p值为:%s' %(adf[1]))\n",
    "else:\n",
    "    print(u'原始序列经检验平稳,p值为:%s' %(adf[1]))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [],
   "source": [
    "# P值大于0.05 原始数据序列不平稳，需要采用差分法消除非平稳趋势"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "原始序列为非白噪声序列,p值为:1.7394410386179063e-42\n"
     ]
    }
   ],
   "source": [
    "# 纯随机性检验\n",
    "from statsmodels.stats.diagnostic import acorr_ljungbox\n",
    "[[lb],[p]]=acorr_ljungbox(bus_df['prf_get_person_count'], lags=1,return_df=False)\n",
    "if p<0.05:\n",
    "    print(u'原始序列为非白噪声序列,p值为:%s'%p)\n",
    "else:\n",
    "    print(u'原始序列为白噪声序列,p值为:%s' %p)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                               ARIMA Model Results                                \n",
      "==================================================================================\n",
      "Dep. Variable:     D.prf_get_person_count   No. Observations:                  219\n",
      "Model:                     ARIMA(2, 1, 2)   Log Likelihood                -613.916\n",
      "Method:                           css-mle   S.D. of innovations              3.990\n",
      "Date:                    Sat, 15 May 2021   AIC                           1239.833\n",
      "Time:                            21:49:29   BIC                           1260.167\n",
      "Sample:                                 1   HQIC                          1248.045\n",
      "                                                                                  \n",
      "================================================================================================\n",
      "                                   coef    std err          z      P>|z|      [0.025      0.975]\n",
      "------------------------------------------------------------------------------------------------\n",
      "const                           -0.0131      0.455     -0.029      0.977      -0.906       0.879\n",
      "ar.L1.D.prf_get_person_count    -0.0921      0.390     -0.236      0.813      -0.855       0.671\n",
      "ar.L2.D.prf_get_person_count     0.2977      0.159      1.872      0.061      -0.014       0.609\n",
      "ma.L1.D.prf_get_person_count     0.5091      0.385      1.322      0.186      -0.245       1.264\n",
      "ma.L2.D.prf_get_person_count    -0.1628      0.158     -1.034      0.301      -0.472       0.146\n",
      "                                    Roots                                    \n",
      "=============================================================================\n",
      "                  Real          Imaginary           Modulus         Frequency\n",
      "-----------------------------------------------------------------------------\n",
      "AR.1           -1.6848           +0.0000j            1.6848            0.5000\n",
      "AR.2            1.9941           +0.0000j            1.9941            0.0000\n",
      "MA.1           -1.3668           +0.0000j            1.3668            0.5000\n",
      "MA.2            4.4938           +0.0000j            4.4938            0.0000\n",
      "-----------------------------------------------------------------------------\n"
     ]
    }
   ],
   "source": [
    "# ARIMA模型建立\n",
    "# 导入warnings，忽略warnings\n",
    "import warnings\n",
    "warnings.filterwarnings('ignore')\n",
    "model = ARIMA(bus_df['prf_get_person_count'], order = (2,,2))\n",
    "model_fit = model.fit(disp=0)\n",
    "print(model_fit.summary())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "ename": "KeyError",
     "evalue": "'ARIMA'",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mKeyError\u001b[0m                                  Traceback (most recent call last)",
      "\u001b[0;32m/opt/anaconda3/lib/python3.8/site-packages/pandas/core/indexes/base.py\u001b[0m in \u001b[0;36mget_loc\u001b[0;34m(self, key, method, tolerance)\u001b[0m\n\u001b[1;32m   2894\u001b[0m             \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2895\u001b[0;31m                 \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_engine\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_loc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcasted_key\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   2896\u001b[0m             \u001b[0;32mexcept\u001b[0m \u001b[0mKeyError\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0merr\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32mpandas/_libs/index.pyx\u001b[0m in \u001b[0;36mpandas._libs.index.IndexEngine.get_loc\u001b[0;34m()\u001b[0m\n",
      "\u001b[0;32mpandas/_libs/index.pyx\u001b[0m in \u001b[0;36mpandas._libs.index.IndexEngine.get_loc\u001b[0;34m()\u001b[0m\n",
      "\u001b[0;32mpandas/_libs/hashtable_class_helper.pxi\u001b[0m in \u001b[0;36mpandas._libs.hashtable.PyObjectHashTable.get_item\u001b[0;34m()\u001b[0m\n",
      "\u001b[0;32mpandas/_libs/hashtable_class_helper.pxi\u001b[0m in \u001b[0;36mpandas._libs.hashtable.PyObjectHashTable.get_item\u001b[0;34m()\u001b[0m\n",
      "\u001b[0;31mKeyError\u001b[0m: 'ARIMA'",
      "\nThe above exception was the direct cause of the following exception:\n",
      "\u001b[0;31mKeyError\u001b[0m                                  Traceback (most recent call last)",
      "\u001b[0;32m<ipython-input-33-7007958d4c43>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m      4\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mset_size_inches\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m12\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m8\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      5\u001b[0m \u001b[0;31m# bus_df['prf_get_person_count'].plot(color = 'b', linestyle = '-', ax=axarr)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 6\u001b[0;31m \u001b[0mbus_df\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'ARIMA'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mplot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcolor\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m'r'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlinestyle\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m'--'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0max\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0maxarr\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m      7\u001b[0m \u001b[0maxarr\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mset_title\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'ARIMA(2,1,2)'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      8\u001b[0m \u001b[0;31m# plt.xlabel('Index')\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m/opt/anaconda3/lib/python3.8/site-packages/pandas/core/frame.py\u001b[0m in \u001b[0;36m__getitem__\u001b[0;34m(self, key)\u001b[0m\n\u001b[1;32m   2900\u001b[0m             \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcolumns\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnlevels\u001b[0m \u001b[0;34m>\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   2901\u001b[0m                 \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_getitem_multilevel\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2902\u001b[0;31m             \u001b[0mindexer\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcolumns\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_loc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   2903\u001b[0m             \u001b[0;32mif\u001b[0m \u001b[0mis_integer\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mindexer\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   2904\u001b[0m                 \u001b[0mindexer\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0mindexer\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m/opt/anaconda3/lib/python3.8/site-packages/pandas/core/indexes/base.py\u001b[0m in \u001b[0;36mget_loc\u001b[0;34m(self, key, method, tolerance)\u001b[0m\n\u001b[1;32m   2895\u001b[0m                 \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_engine\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_loc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcasted_key\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   2896\u001b[0m             \u001b[0;32mexcept\u001b[0m \u001b[0mKeyError\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0merr\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2897\u001b[0;31m                 \u001b[0;32mraise\u001b[0m \u001b[0mKeyError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0merr\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   2898\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   2899\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0mtolerance\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;31mKeyError\u001b[0m: 'ARIMA'"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 864x576 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 模型拟合\n",
    "# bus_df['ARIMA'] = model_fit.predict(typ='levels')\n",
    "f, axarr = plt.subplots(1, sharex = True)\n",
    "f.set_size_inches(12, 8)\n",
    "# bus_df['prf_get_person_count'].plot(color = 'b', linestyle = '-', ax=axarr)\n",
    "bus_df['ARIMA'].plot(color = 'r', linestyle = '--', ax=axarr)\n",
    "axarr.set_title('ARIMA(2,1,2)')\n",
    "# plt.xlabel('Index')\n",
    "# plt.ylabel('prf_get_person_count')\n",
    "# plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
